Portable Articulated Arm Coordinate Measuring Machine with Multiple Communication Channels

ABSTRACT

A portable articulated arm coordinate measuring machine (AACMM) with multiple communication channels that includes a manually positionable articulated arm portion having opposed first and second ends, the arm portion including a plurality of connected arm segments, each of the arm segments including at least one position transducer for producing a position signal. The portable AACMM also includes a measurement device attached to a first end of the portable AACMM and a plurality of communication channels. The portable AACMM also includes an electronic circuit for receiving the position signals from the transducers and for providing data corresponding to a position of the measurement device. The portable AACMM also includes executable by the electronic circuit for receiving a request from a user to communicate via a selected one of the plurality of communication channels, and for configuring the portable AACMM to communicate via the selected communication channel.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of provisional applicationNo. 61/296,555 filed Jan. 20, 2010, the content of which is herebyincorporated by reference in its entirety.

BACKGROUND

The present disclosure relates to a coordinate measuring machine, andmore particularly to a portable articulated arm coordinate measuringmachine having multiple communication channels.

Portable articulated arm coordinate measuring machines (AACMMs) havefound widespread use in the manufacturing or production of parts wherethere is a need to rapidly and accurately verify the dimensions of thepart during various stages of the manufacturing or production (e.g.,machining) of the part. Portable AACMMs represent a vast improvementover known stationary or fixed, cost-intensive and relatively difficultto use measurement installations, particularly in the amount of time ittakes to perform dimensional measurements of relatively complex parts.Typically, a user of a portable AACMM simply guides a probe along thesurface of the part or object to be measured. The measurement data arethen recorded and provided to the user. In some cases, the data areprovided to the user in visual form, for example, three-dimensional(3-D) form on a computer screen. In other cases, the data are providedto the user in numeric form, for example when measuring the diameter ofa hole, the text “Diameter=1.0034” is displayed on a computer screen.

An example of a prior art portable articulated arm CMM is disclosed incommonly assigned U.S. Pat. No. 5,402,582 ('582), which is incorporatedherein by reference in its entirety. The '582 patent discloses a 3-Dmeasuring system comprised of a manually-operated articulated arm CMMhaving a support base on one end and a measurement probe at the otherend. Commonly assigned U.S. Pat. No. 5,611,147 ('147), which isincorporated herein by reference in its entirety, discloses a similararticulated arm CMM. In the '147 patent, the articulated arm CMMincludes a number of features including an additional rotational axis atthe probe end, thereby providing for an arm with either a two-two-two ora two-two-three axis configuration (the latter case being a seven axisarm).

Contemporary portable AACMMs are typically controlled by an externalcomputer processor that is physically connected to the AACMM toconfigure and connect the AACMM to a network. While existing portableAACMMs are suitable for their intended purposes, a portable AACMM thatincludes logic to connect to a network would enhance portability andease of use of the portable AACMM.

SUMMARY OF THE INVENTION

An embodiment is a portable articulated arm coordinate measurementmachine (AACMM) that includes a manually positionable articulated armportion having opposed first and second ends, the arm portion includinga plurality of connected arm segments, each of the arm segmentsincluding at least one position transducer for producing a positionsignal. The portable AACMM also includes a measurement device attachedto a first end of the portable AACMM and a plurality of communicationchannels. The portable AACMM also includes an electronic circuit forreceiving the position signals from the transducers and for providingdata corresponding to a position of the measurement device. The portableAACMM also includes executable by the electronic circuit for receiving arequest from a user to communicate via a selected one of the pluralityof communication channels, and for configuring the portable AACMM tocommunicate via the selected communication channel.

Another embodiment is a method of implementing a portable AACMM. Themethod includes receiving a request from a user to communicate via aselected communication channel. The receiving is at the portable AACMM.The portable AACMM includes a manually positionable articulated armportion having opposed first and second ends, the arm portion includinga plurality of connected arm segments, each arm segment including atleast one position transducer for producing a position signal. Theportable AACMM also includes a measurement device attached to a firstend of the portable AACMM, a plurality of communication channelsincluding the selected communication channel, and an electronic circuitwhich receives the position signal from the transducers and providesdata corresponding to a position of the measurement device. The methodalso includes configuring the portable AACMM to communicate via theselected communication channel.

A further embodiment is a computer program product for implementing aportable AACMM. The computer program product includes a storage mediumhaving computer-readable program code embodied thereon, which whenexecuted by an electronic circuit located on the AACMM causes thecomputer to implement a method. The method includes receiving a requestfrom a user to communicate via a selected communication channel. Thereceiving is at the portable AACMM. The portable AACMM includes amanually positionable articulated arm portion having opposed first andsecond ends, the arm portion including a plurality of connected armsegments, each arm segment including at least one position transducerfor producing a position signal. The portable AACMM also includes ameasurement device attached to a first end of the portable AACMM, aplurality of communication channels including the selected communicationchannel, and an electronic circuit which receives the position signalfrom the transducers and provides data corresponding to a position ofthe measurement device. The method also includes configuring theportable AACMM to communicate via the selected communication channel.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings, exemplary embodiments are shown whichshould not be construed to be limiting regarding the entire scope of thedisclosure, and wherein the elements are numbered alike in severalFIGURES:

FIG. 1, including FIGS. 1A and 1B, are perspective views of a portablearticulated arm coordinate measuring machine (AACMM) having embodimentsof various aspects of the present invention therewithin;

FIG. 2, including FIGS. 2A-2D taken together, is a block diagram ofelectronics utilized as part of the AACMM of FIG. 1 in accordance withan embodiment;

FIG. 3, including FIGS. 3A and 3B taken together, is a block diagramdescribing detailed features of the electronic data processing system ofFIG. 2 in accordance with an embodiment;

FIG. 4 illustrates an AACMM system environment in accordance with anembodiment;

FIG. 5 illustrates a main menu user interface screen in accordance withan embodiment;

FIG. 6 illustrates a setting menu user interface screen in accordancewith an embodiment;

FIG. 7 illustrates a network connection user interface screen inaccordance with an embodiment;

FIG. 8 illustrates a communications settings user interface screen for aWiFi network in accordance with an embodiment;

FIG. 9 illustrates a configure static Internet protocol user interfacescreen in accordance with an embodiment;

FIG. 10 illustrates an access point connection user interface screen inaccordance with an embodiment; and

FIG. 11 illustrates a process flow for configuring network connectionsfor an AACMM in accordance with an embodiment.

DETAILED DESCRIPTION

An embodiment is directed to a portable articulated arm coordinatemeasuring machine (AACMM) that includes logic to detect and connect toavailable networks. The ability for the portable AACMM to perform thenetwork connection directly allows the network connection to beautomatically tailored to the portable AACMM. Having the networkconnected automatically via the portable AACMM avoids problems ofincorrect system description (e.g., parameters, hardware specifications,software levels) being entered when configuring a network connection fora portable AACMM via a device other than the portable AACMM.

FIGS. 1A and 1B illustrate, in perspective, a portable articulated armcoordinate measuring machine (AACMM) 100 according to variousembodiments of the present invention, an articulated arm being one typeof coordinate measuring machine. As shown in FIGS. 1A and 1B, theexemplary AACMM 100 may comprise a six or seven axis articulatedmeasurement device having a measurement probe housing 102 coupled to anarm portion 104 of the AACMM 100 at one end. The arm portion 104comprises a first arm segment 106 coupled to a second arm segment 108 bya first grouping of bearing cartridges 110 (e.g., two bearingcartridges). A second grouping of bearing cartridges 112 (e.g., twobearing cartridges) couples the second arm segment 108 to themeasurement probe housing 102. A third grouping of bearing cartridges114 (e.g., three bearing cartridges) couples the first arm segment 106to a base 116 located at the other end of the arm portion 104 of theAACMM 100. Each grouping of bearing cartridges 110, 112, 114 providesfor multiple axes of articulated movement. Also, the measurement probehousing 102 may comprise the shaft of the seventh axis portion of theAACMM 100 (e.g., a cartridge containing an encoder system thatdetermines movement of the measurement device, for example a probe 118,in the seventh axis of the AACMM 100). In use of the AACMM 100, the base116 is typically affixed to a work surface.

Each bearing cartridge within each bearing cartridge grouping 110, 112,114 typically contains an encoder system (e.g., an optical angularencoder system). The encoder system (i.e., transducer) provides anindication of the position of the respective arm segments 106, 108 andcorresponding bearing cartridge groupings 110, 112, 114 that alltogether provide an indication of the position of the probe 118 withrespect to the base 116 (and, thus, the position of the object beingmeasured by the AACMM 100 in a certain frame of reference—for example alocal or global frame of reference). The arm segments 106, 108 may bemade from a suitably rigid material such as but not limited to a carboncomposite material for example. A portable AACMM 100 with six or sevenaxes of articulated movement (i.e., degrees of freedom) providesadvantages in allowing the operator to position the probe 118 in adesired location within a 360° area about the base 116 while providingan arm portion 104 that may be easily handled by the operator. However,it should be appreciated that the illustration of an arm portion 104having two arm segments 106, 108 is for exemplary purposes, and theclaimed invention should not be so limited. An AACMM 100 may have anynumber of arm segments coupled together by bearing cartridges (and,thus, more or less than six or seven axes of articulated movement ordegrees of freedom).

The probe 118 is detachably mounted to the measurement probe housing102, which is connected to bearing cartridge grouping 112. A handle 126is removable with respect to the measurement probe housing 102 by wayof, for example, a quick-connect interface. The handle 126 may bereplaced with another device (e.g., a laser line probe, a bar codereader), thereby providing advantages in allowing the operator to usedifferent measurement devices with the same AACMM 100. In exemplaryembodiments, the probe housing 102 houses a removable probe 118, whichis a contacting measurement device and may have different tips 118 thatphysically contact the object to be measured, including, but not limitedto: ball, touch-sensitive, curved and extension type probes. In otherembodiments, the measurement is performed, for example, by anon-contacting device such as a laser line probe (LLP). In anembodiment, the handle 126 is replaced with the LLP using thequick-connect interface. Other types of measurement devices may replacethe removable handle 126 to provide additional functionality. Examplesof such measurement devices include, but are not limited to, one or moreillumination lights, a temperature sensor, a thermal scanner, a bar codescanner, a projector, a paint sprayer, a camera, or the like, forexample.

As shown in FIGS. 1A and 1B, the AACMM 100 includes the removable handle126 that provides advantages in allowing accessories or functionality tobe changed without removing the measurement probe housing 102 from thebearing cartridge grouping 112. As discussed in more detail below withrespect to FIG. 2, the removable handle 126 may also include anelectrical connector that allows electrical power and data to beexchanged with the handle 126 and the corresponding electronics locatedin the probe end.

In various embodiments, each grouping of bearing cartridges 110, 112,114 allows the arm portion 104 of the AACMM 100 to move about multipleaxes of rotation. As mentioned, each bearing cartridge grouping 110,112, 114 includes corresponding encoder systems, such as optical angularencoders for example, that are each arranged coaxially with thecorresponding axis of rotation of, e.g., the arm segments 106, 108. Theoptical encoder system detects rotational (swivel) or transverse (hinge)movement of, e.g., each one of the arm segments 106, 108 about thecorresponding axis and transmits a signal to an electronic dataprocessing system within the AACMM 100 as described in more detailherein below. Each individual raw encoder count is sent separately tothe electronic data processing system as a signal where it is furtherprocessed into measurement data. No position calculator separate fromthe AACMM 100 itself (e.g., a serial box) is required, as disclosed incommonly assigned U.S. Pat. No. 5,402,582 ('582).

The base 116 may include an attachment device or mounting device 120.The mounting device 120 allows the AACMM 100 to be removably mounted toa desired location, such as an inspection table, a machining center, awall or the floor for example. In one embodiment, the base 116 includesa handle portion 122 that provides a convenient location for theoperator to hold the base 116 as the AACMM 100 is being moved. In oneembodiment, the base 116 further includes a movable cover portion 124that folds down to reveal a user interface, such as a display screen.

In accordance with an embodiment, the base 116 of the portable AACMM 100contains or houses an electronic data processing system that includestwo primary components: a base processing system that processes the datafrom the various encoder systems within the AACMM 100 as well as datarepresenting other arm parameters to support three-dimensional (3-D)positional calculations; and a user interface processing system thatincludes an on-board operating system, a touch screen display, andresident application software that allows for relatively completemetrology functions to be implemented within the AACMM 100 without theneed for connection to an external computer.

The electronic data processing system in the base 116 may communicatewith the encoder systems, sensors, and other peripheral hardware locatedaway from the base 116 (e.g., a LLP that can be mounted to the removablehandle 126 on the AACMM 100). The electronics that support theseperipheral hardware devices or features may be located in each of thebearing cartridge groupings 110, 112, 114 located within the portableAACMM 100.

FIG. 2 is a block diagram of electronics utilized in an AACMM 100 inaccordance with an embodiment. The embodiment shown in FIG. 2 includesan electronic data processing system 210 including a base processorboard 204 for implementing the base processing system, a user interfaceboard 202, a base power board 206 for providing power, a Bluetoothmodule 232, and a base tilt board 208. The user interface board 202includes a computer processor for executing application software toperform user interface, display, and other functions described herein.

As shown in FIG. 2, the electronic data processing system 210 is incommunication with the aforementioned plurality of encoder systems viaone or more arm buses 218. In the embodiment depicted in FIG. 2, eachencoder system generates encoder data and includes: an encoder arm businterface 214, an encoder digital signal processor (DSP) 216, an encoderread head interface 234, and a temperature sensor 212. Other devices,such as strain sensors, may be attached to the arm bus 218.

Also shown in FIG. 2 are probe end electronics 230 that are incommunication with the arm bus 218. The probe end electronics 230include a probe end DSP 228, a temperature sensor 212, a handle/LLPinterface bus 240 that connects with the handle 126 or the LLP 242 viathe quick-connect interface in an embodiment, and a probe interface 226.The quick-connect interface allows access by the handle 126 to the databus, control lines, and power bus used by the LLP 242 and otheraccessories. In an embodiment, the probe end electronics 230 are locatedin the measurement probe housing 102 on the AACMM 100. In an embodiment,the handle 126 may be removed from the quick-connect interface andmeasurement may be performed by the laser line probe (LLP) 242communicating with the probe end electronics 230 of the AACMM 100 viathe handle/LLP interface bus 240. In an embodiment, the electronic dataprocessing system 210 is located in the base 116 of the AACMM 100, theprobe end electronics 230 are located in the measurement probe housing102 of the AACMM 100, and the encoder systems are located in the bearingcartridge groupings 110, 112, 114. The probe interface 226 may connectwith the probe end DSP 228 by any suitable communications protocol,including commercially-available products from Maxim IntegratedProducts, Inc. that embody the 1-Wire® communications protocol 236.

FIG. 3 is a block diagram describing detailed features of the electronicdata processing system 210 of the AACMM 100 in accordance with anembodiment. In an embodiment, the electronic data processing system 210is located in the base 116 of the AACMM 100 and includes the baseprocessor board 204, the user interface board 202, a base power board206, a Bluetooth module 232, and a base tilt module 208.

In an embodiment shown in FIG. 3, the base processor board 204 includesthe various functional blocks illustrated therein. For example, a baseprocessor function 302 is utilized to support the collection ofmeasurement data from the AACMM 100 and receives raw arm data (e.g.,encoder system data) via the arm bus 218 and a bus control modulefunction 308. The memory function 304 stores programs and static armconfiguration data. The base processor board 204 also includes anexternal hardware option port function 310 for communicating with anyexternal hardware devices or accessories such as an LLP 242. A real timeclock (RTC) and log 306, a battery pack interface (IF) 316, and adiagnostic port 318 are also included in the functionality in anembodiment of the base processor board 204 depicted in FIG. 3.

The base processor board 204 also manages all the wired and wirelessdata communication with external (host computer) and internal (displayprocessor 202) devices. The base processor board 204 has the capabilityof communicating with an Ethernet network via an Ethernet function 320(e.g., using a clock synchronization standard such as Institute ofElectrical and Electronics Engineers (IEEE) 1588), with a wireless localarea network (WLAN) via a LAN function 322, and with Bluetooth module232 via a parallel to serial communications (PSC) function 314. The baseprocessor board 204 also includes a connection to a universal serial bus(USB) device 312.

The base processor board 204 transmits and collects raw measurement data(e.g., encoder system counts, temperature readings) for processing intomeasurement data without the need for any preprocessing, such asdisclosed in the serial box of the aforementioned '582 patent. The baseprocessor 204 sends the processed data to the display processor 328 onthe user interface board 202 via an RS485 interface (IF) 326. In anembodiment, the base processor 204 also sends the raw measurement datato an external computer.

Turning now to the user interface board 202 in FIG. 3, the angle andpositional data received by the base processor is utilized byapplications executing on the display processor 328 to provide anautonomous metrology system within the AACMM 100. Applications may beexecuted on the display processor 328 to support functions such as, butnot limited to: measurement of features, guidance and training graphics,remote diagnostics, temperature corrections, control of variousoperational features, connection to various networks, and display ofmeasured objects. Along with the display processor 328 and a liquidcrystal display (LCD) 338 (e.g., a touch screen LCD) user interface, theuser interface board 202 includes several interface options including asecure digital (SD) card interface 330, a memory 332, a USB Hostinterface 334, a diagnostic port 336, a camera port 340, an audio/videointerface 342, a dial-up/cell modem 344 and a global positioning system(GPS) port 346.

The electronic data processing system 210 shown in FIG. 3 also includesa base power board 206 with an environmental recorder 362 for recordingenvironmental data. The base power board 206 also provides power to theelectronic data processing system 210 using an AC/DC converter 358 and abattery charger control 360. The base power board 206 communicates withthe base processor board 204 using inter-integrated circuit (I2C) serialsingle ended bus 354 as well as via a DMA serial peripheral interface(DSPI) 356. The base power board 206 is connected to a tilt sensor andradio frequency identification (RFID) module 208 via an input/output(110) expansion function 364 implemented in the base power board 206.

Though shown as separate components, in other embodiments all or asubset of the components may be physically located in differentlocations and/or functions combined in different manners than that shownin FIG. 3. For example, in one embodiment, the base processor board 204and the user interface board 202 are combined into one physical board.

FIG. 4 illustrates an AACMM system environment in accordance with anembodiment. The system depicted in FIG. 4 includes a network 406 incommunication with two portable AACMMs 100, a personal computer 402, anda smart phone 404 (e.g., communicating with an AACMM 100 via WiFi orBluetooth). The system depicted in FIG. 4 also includes a personalcomputer 402 in direct communication (i.e., not via a network) with oneof the AACMMs 100. The system depicted in FIG. 4 is intended to be oneexample of an AACMM system environment configuration, and is notintended to be limiting. Another AACMM system environment embodimentincludes one network 406 and one AACMM 100 in communication with thenetwork 406. In other embodiments, any number of portable AACMMs 100 anduser devices (e.g., personal computer 402 and smart phone 404) are incommunication with the network 406.

In an embodiment, all or a portion of the network 406 is implemented bya local area network (LAN) or wireless LAN (WLAN). In anotherembodiment, all or a portion of the network is implemented by a personalarea network (PAN) using Bluetooth. In a further embodiment, all or aportion of the network 406 is implemented by an Ethernet network. Itwill be appreciated that network 406 can be implemented by anycombination of the aforementioned networks as well as other types ofwired and wireless networks such as, but not limited to the Internet,and an intranet.

In an embodiment, the portable AACMMs 100 and user devices (e.g.,personal computers 402 and smart phone 404) are located in the samegeographical location. In another embodiment, the portable AACMMs 100and the user devices are located in two or more different geographicallocations. It will be appreciated that the user devices are not limitedto personal computers and cellular telephones but that they include anydevice capable of communicating with a network such as, but not limitedto personal digital assistants (PDAs), and net book computers.

The user devices (e.g., the personal computer 402 and smart phone 404)access the processor 302 on the base processor board 204 in an AACMM 100to request the AACMM 100 to perform user selected functions. Thus, userdevices can be used in a fashion similar to the user interface board 202to interface with the base processor board 204 of the AACMM 100.Depending on how the user device is communicating with the AACMM 100,all, a portion, or none of the code located on the user interface board202 and the base processor board 204 may be resident on the user device.Some applications may also be remote (accessing the AACMM 100 via arouter) and present in a different network.

An application residing on a user device may be used to perform all or asubset of the functions of the user interface board 202. In anembodiment, an application written for a specific user device resides onthe user device, and this application collects data from the AACMM 100and uses it in the application resident on the user device. Thisapproach of having the application written for a specific user devicerequires that a custom version of the application be developed for eachtype of user device (e.g., I-Phone, Android, Windows CE, etc.).

In another embodiment, an application resides in the AACMM 100, and theuser accesses the application and data via a web-like interface. In thiscase, the AACMM 100 hosts a web service version of the application viaany standard browser on a remote user device.

In response to the user selected function requests, various components,e.g., encoders, sensors, and electronics are activated and collect dataresponsive to the request. In response to other user selected functionrequests, the AACMM 100 and/or user interfaces associated with the AACMM100 are configured. In one embodiment, any user selected function thatcan be initiated or accessed via the LCD 338 on the user interface board202 can also be initiated or accessed via a user device connected to theAACMM 100 via the network 406. In another embodiment, certain userselected functions are designated as those that can be accessed via auser device connected to the AACMM 100 via the network. In anotherembodiment, a combination of these two approaches is implemented, withsome user selected functions being automatically accessible via a userdevice and other user selected functions requiring authorization tocommunicate with a user device.

User selected functions that may be initiated by a user device andexecuted by the processor 302 on the base processor board 204 include,but are not limited to: acquisition of dimensional measurements of anobject, monitoring various temperature values, performing calibration ofone or more components of the AACMM 100, performing diagnostics on oneor more of the components of the AACMM 100, and providing trainingguidance.

FIG. 5 illustrates a main menu user interface screen in accordance withan embodiment. In an embodiment, the user interface screen depicted inFIG. 5 is displayed on the LCD 338 on the user interface board 202. Inan embodiment, the user interface board 202 includes residentapplications (e.g., stored in the memory 332) and executed by thedisplay processor 328 for providing a graphical user interface (GUI)with selectable menu options corresponding to the available functionsimplemented by the AACMM 100. The GUI may be implemented as a set ofmenu options, such as those shown in FIG. 5. In FIG. 5, a computerscreen window of the LCD 338 illustrates various menu options, such as“Part Setup” (e.g., for specifying part elements such as planes, lines,circles, and cylinders), “Measure” (e.g., for specifying features,lengths, angles, and positions), “Files” (e.g., for defining new parts,loading macros, and transferring data), “Settings” (e.g., for specifyingapplications, network connections, display characteristics, soundelements, power parameters, and languages), and “Diagnostics”. In anembodiment, a user selects “Settings” (e.g., by touching the screen onthe LCS 338) in order to get status about or to set up the networkconnection(s).

FIG. 6 illustrates a settings menu user interface screen in accordancewith an embodiment that is displayed when the user selects “Settings” onthe main menu user interface screen depicted in FIG. 5. In anembodiment, the user selects “Connection” in order to get status aboutor to set up the network connection(s).

FIG. 7 illustrates a network connection user interface screen inaccordance with an embodiment that is displayed when the user selects“Connection” on the setting menu user interface depicted in FIG. 6. Thenetwork connection user interface screen depicted in FIG. 7 allows auser to select what communication options are to be turned on or off. Asshown in FIG. 7, Bluetooth is enabled (turned on), as well as Ethernet.Also as shown in FIG. 7, a WiFi network is not currently enabled (it isturned off) on the AACMM 100. In an embodiment, the user changes thestatus by selecting a network icon. For example, the status of Bluetoothcan be changed from “enabled” to “not enabled” by clicking on theBluetooth icon on the network connection user interface screen shown inFIG. 7.

FIG. 8 illustrates a communications setting user interface screen for aWiFi network in accordance with an embodiment. In the user interfacescreen shown in FIG. 8, the WiFi network has been selected (as indicatedby check mark next to the WiFi enabled box). The user interface screenpresents the user with options for setting up a WiFi connection: toconnect the AACMM 100 to an Ethernet network (e.g., a LAN), to a network(e.g., the Internet), and/or directly to a personal computer or laptopcomputer without going through a network. As shown in FIG. 8, the WiFiconnection can be established (and an address for the AACMM 100assigned) via a dynamic host configuration protocol (DHCP) or via astatic internet protocol (IP). The way that the WiFi connection isestablished is installation dependent, and embodiments of the AACMM 100described herein can support both DHCP and a static IP.

FIG. 9 illustrates a configure static IP user interface screen that ispresented to a user when the user selects a static IP connection on thecommunications setting user interface screen shown in FIG. 8. As shownin the embodiment in FIG. 9, the user enters an IP address, a subnetmask and a gateway to establish a static IP WiFi connection to thenetwork or to the Ethernet.

FIG. 10 illustrates an access point connection user interface screen inaccordance with an embodiment when a user has selected a WiFi networkconnection on the user interface shown in FIG. 7. When the WiFi networkconnection is selected, the AACMM 100 looks for wireless routers andthen displays the names of the WiFi networks associated with the locatedrouters on a user interface screen such as the one shown in FIG. 10. Theuser interface screen shown in FIG. 10 also includes the signal strengthas indicated by the length of the line next to each identified network.The user can then select one or more of the wireless networks and theAACMM 100 will automatically connect to the selected networks. In anembodiment, the AACMM 100 can only connect to one router at a time. Inan embodiment, where Bluetooth and Ethernet are considered separatenetworks, both of these channels are open at the same time. In anembodiment, the AACMM 100 is a slave device on a network, and thenetwork router and other devices are master devices.

In an embodiment, the user interface screens shown in FIGS. 5-10 aredisplayed on the LCD 338 located on the user interface board 202. Inanother embodiment, all or a subset of the user interface screens shownin FIGS. 5-10 are displayed on a user device that is in communicationwith the portable AACMM 100 via a network 406. In other embodiments, thecontent and the layout of the user interface screens shown are differentthan that shown in FIGS. 5-10, as the user interface screens shown inFIGS. 5-10 are intended to be examples of one way that a portable AACMM100 may be connected to a network.

FIG. 11 illustrates a process flow for configuring network connectionsfor a portable AACMM 100 in accordance with an embodiment. In anembodiment, the process flow depicted in FIG. 11 is executed byprocessor 302 located on the base processor board 204 of the AACMM 100.In an embodiment, the processor 302 outputs to and receives input fromthe LCD 338 via the display processor 328 on the user interface board202. At step 1102, one or more of the communication channels supportedby the AACMM 100 (e.g., USB, Ethernet, Wifi, Bluetooth) are selected. Atstep 1104 it is determined if a USB connection has been selected. If aUSB connection has been selected, then step 1106 is performed and a USBcable is plugged in to the AACMM 100 and external host (computer), atwhich time the external host enumerates the ACCMM (discovers and loadsthe required computer software driver for the ACCMM) and an applicationis executed. In an embodiment, the discovery and loading of the AACMMdriver takes place automatically. In the embodiment depicted in FIG. 11,processing is completed after step 1106. In another embodiment, afterstep 1106 is completed processing continues at step 1108.

If the USB communication channel was not selected, then step 1108 isperformed to set up the supported communication channels. Externalnetwork(s) corresponding to the selected communication channel (s) isconfigured. In an embodiment, the external network is one of a LAN, aWLAN, or a PAN. In addition, any computers and/or peripherals used bythe communication channel are configured at step 1108. At step 1110, auser selects one or more of the communication channels from a userinterface screen such as the one in FIG. 7. At step 1112, the AACMM isconfigured to communicate with the selected communication channel(s).

Technical effects and benefits include having a large variety ofcommunication technologies supported such that the user has maximumflexibility in using the product in an environment where restrictionsmay be placed on one or more of the typical communication options. Asexamples, in some plants, Bluetooth is used to control automateddelivery systems, thus Wi-Fi must be used to avoid interference. Inanother, Wi-Fi has too great a range and thus Bluetooth is preferable.In another, wireless methods are not acceptable due to the classifiednature of the parts, thus wired Ethernet is required. In a plant withnetwork restriction on network access, USB is required. All of theseoptions are supported in exemplary embodiments described herein.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablemedium would include the following: an electrical connection having oneor more wires, a portable computer diskette, a hard disk, a randomaccess memory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), an optical fiber, a portablecompact disc read-only memory (CD-ROM), an optical storage device, amagnetic storage device, or any suitable combination of the foregoing.In the context of this document, a computer readable storage medium maybe any tangible medium that may contain, or store a program for use byor in connection with an instruction execution system, apparatus, ordevice.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++, C# or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, may be implemented bycomputer program instructions.

These computer program instructions may be provided to a processor of ageneral purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions, which execute via the processor of the computer orother programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer program instructions may also bestored in a computer readable medium that may direct a computer, otherprogrammable data processing apparatus, or other devices to function ina particular manner, such that the instructions stored in the computerreadable medium produce an article of manufacture including instructionswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the Figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, may be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

While the invention has been described with reference to exampleembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted forelements thereof without departing from the scope of the invention. Inaddition, many modifications may be made to adapt a particular situationor material to the teachings of the invention without departing from theessential scope thereof. Therefore, it is intended that the inventionnot be limited to the particular embodiment disclosed as the best modecontemplated for carrying out this invention, but that the inventionwill include all embodiments falling within the scope of the appendedclaims. Moreover, the use of the terms first, second, etc. do not denoteany order or importance, but rather the terms first, second, etc. areused to distinguish one element from another. Furthermore, the use ofthe terms a, an, etc. do not denote a limitation of quantity, but ratherdenote the presence of at least one of the referenced item.

1. A portable articulated arm coordinate measurement machine (AACMM),comprising: a manually positionable articulated arm portion havingopposed first and second ends, the arm portion including a plurality ofconnected arm segments, each of the arm segments including at least oneposition transducer for producing a position signal; a measurementdevice attached to a first end of the portable AACMM; a plurality ofcommunication channels; an electronic circuit for receiving the positionsignals from the transducers and for providing data corresponding to aposition of the measurement device; and logic executable by theelectronic circuit for receiving a request from a user to communicatevia a selected one of the plurality of communication channels, and forconfiguring the portable AACMM to communicate via the selectedcommunication channel.
 2. The portable AACMM of claim 1, wherein thelogic is further for receiving a second request to communicate viaanother one of the plurality of communication channels and forconfiguring the portable AACMM to communicate via the another one of theplurality of communication channels to provide multiple simultaneouslyoperable communication channels.
 3. The portable AACMM of claim 1,wherein the plurality of communication channels include a universalserial bus (USB).
 4. The portable AACMM of claim 1, wherein theplurality of communication channels include a wireless network.
 5. Theportable AACMM of claim 1, wherein the plurality of communicationchannels includes an Ethernet.
 6. The portable AACMM of claim 1, whereinthe plurality of communication channels include Bluetooth.
 7. Theportable AACMM of claim 1, wherein the plurality of communicationchannels include a USB, a wireless network, an Ethernet, and aBluetooth.
 8. The portable AACMM of claim 1, wherein the logic isfurther for receiving a request from a remote device attached to theselected communication channel to perform a function and for performingthe function in response to receiving the request to perform thefunction.
 9. The portable AACMM of claim 8, wherein the logic is furtherfor transmitting results of performing the function to the remotedevice.
 10. A method of implementing a portable articulated armcoordinate measuring machine (AACMM), the method comprising: receiving arequest from a user to communicate via a selected communication channel,the receiving at the portable AACMM comprised of a manually positionablearticulated arm portion having opposed first and second ends, the armportion including a plurality of connected arm segments, each armsegment including at least one position transducer for producing aposition signal, a measurement device attached to a first end of theportable AACMM, a plurality of communication channels including theselected communication channel, and an electronic circuit which receivesthe position signal from the transducers and provides data correspondingto a position of the measurement device; and configuring the portableAACMM to communicate via the selected communication channel.
 11. Themethod claim 10, further comprising: receiving a second request tocommunicate via another one of the plurality of communication channels;and configuring the portable AACMM to communicate via the another one ofthe plurality of communication channels to provide multiplesimultaneously operable communication channels.
 12. The method of claim10, wherein the plurality of communication channels include a universalserial bus (USB).
 13. The method of claim 10, wherein the plurality ofcommunication channels include a wireless network.
 14. The method ofclaim 10, wherein the plurality of communication channels includes anEthernet.
 15. The method of claim 10, wherein the plurality ofcommunication channels include Bluetooth.
 16. The method of claim 10,wherein the plurality of communication channels include a USB, awireless network, an Ethernet, and a Bluetooth.
 17. The method of claim10, further comprising: receiving a request from a remote deviceattached to the selected communication channel to perform a function;and performing the function in response to receiving the request toperform the function.
 18. The method of claim 17, further comprisingtransmitting results of performing the function to the remote device.19. A computer program product for implementing a portable articulatedarm coordinate measuring machine (AACMM), the computer program productcomprising a storage medium having computer-readable program codeembodied thereon, which when executed by an electronic circuit locatedon the portable AACMM causes the computer to implement a method, themethod including: receiving a request from a user to communicate via aselected communication channel, the receiving at the portable AACMM, theportable AACMM comprised of a manually positionable articulated armportion having opposed first and second ends, the arm portion includinga plurality of connected arm segments, each arm segment including atleast one position transducer for producing a position signal, ameasurement device attached to a first end of the portable AACMM, aplurality of communication channels including the selected communicationchannel, and the electronic circuit which receives the position signalfrom the transducers and provides data corresponding to a position ofthe measurement device; and configuring the portable AACMM tocommunicate via the selected communication channel.
 20. The computerprogram product of claim 19, wherein the method further comprises:receiving a second request to communicate via another one of theplurality of communication channels; and configuring the portable AACMMto communicate via the another one of the plurality of communicationchannels to provide multiple simultaneously operable communicationchannels.
 21. The computer program product of claim 19, wherein theplurality of communication channels include a USB, a wireless network,an Ethernet, and a Bluetooth.
 22. The computer program product of claim19, wherein the method further comprises: receiving a request from aremote device attached to the selected communication channel to performa function; and performing the function in response to receiving therequest to perform the function.
 23. The computer program product ofclaim 22, wherein the method further comprises transmitting results ofperforming the function to the remote device.